Software Development
Defensive Programming in Java
Defensive Programming in Java: Data Handling, Injection Attacks, and Concurrency
Defensive Programming in Java: Data Security and Access Control
Defensive Programming in Java: Fundamentals

Defensive Programming in Java: Data Handling, Injection Attacks, and Concurrency

Course Number:
sd_sprj_a02_it_enus
Lesson Objectives

Defensive Programming in Java: Data Handling, Injection Attacks, and Concurrency

  • start the course
  • identify why unsanitized data should not be logged in Java programs
  • identify why unsanitized data should be excluded from format strings
  • identify the issues that can occur when handling ZIP and GZIP files in Java
  • identify how to use input validation in a Java application
  • identify how to protect regular expressions against regex injection attacks
  • identify how to prevent SQL injection attacks in Java
  • identify how to prevent code injections in Java
  • set up a local LDAP server, create a connection, and populate the server with directory entries
  • identify how to prevent LDAP injection in Java
  • identify how to prevent XPath injections in Java
  • identify how to prevent XML injection attacks in Java
  • identify how to prevent against XML Entity expansion attacks in Java
  • list the potential problems that path traversal may cause and recognize how to prevent them in Java
  • handle concurrency securely by avoiding race conditions in Java programs
  • safely manage concurrency by ensuring safe publication of the members of referenced objects
  • safely manage concurrency by ensuring proper synchronization semantics
  • use thread-safety-related annotation in Java programs
  • use defensive programming techniques to defend against attacks in Java programs

Overview/Description
Defensive programming is an approach to programming that attempts to ensure that software still functions under adverse or unforeseen circumstances. In this course, you'll learn how to defend against injection attacks, including SQL, XML, LDAP, and coding attacks. You'll also learn how to handle concurrency.

Target Audience
Java developers seeking an introductory guide to developing efficient, secure, Java applications that are defendable against a variety of issues

Defensive Programming in Java: Data Security and Access Control

Course Number:
sd_sprj_a03_it_enus
Lesson Objectives

Defensive Programming in Java: Data Security and Access Control

  • start this course
  • implement secure network communications in Java programs
  • identify permission issues with callback methods that you need to consider when programming defensively in Java
  • identify access control issues with java.security.AccessController.doPrivileged in Java programs
  • identify how to use containers securely in Java
  • create a custom security policy file to grant permissions in Java
  • identify permission issues with contexts that you need to consider when programming defensively in Java
  • identify permission issues with callers that you need to consider when programming defensively in Java
  • identify how to code defensively to avoid compromising data confidentiality
  • use secure password storage
  • review a database that stores user authentication data and write code that can be used to connect and communicate with the database
  • implement and test secure user authentication
  • use defensive coding techniques in communication, authorization and access control to create a secure Java application

Overview/Description
Defensive programming is an approach to programming that attempts to ensure that software still functions under adverse or unforeseen circumstances. In this course, you will learn how to code defensively in order to handle and protect data. You'll learn how to implement secure communcations and how to implement access control and authentication effectively.

Target Audience
Java developers seeking an introductory guide to developing efficient, secure, Java applications that are defendable against a variety of issues

Defensive Programming in Java: Fundamentals

Course Number:
sd_sprj_a01_it_enus
Lesson Objectives

Defensive Programming in Java: Fundamentals

  • start the course
  • recognize the key features of defensive coding in Java
  • use assertions in your Java programming code
  • use annotations in Java programming code
  • create examples of defensible methods in Java
  • identify and apply defensive techniques for handling untrusted method parameters
  • apply secure checks on method return values
  • identify issues with conversions to narrower types in Java and identify issues with promotions such as long to double
  • identify issues with floating point values
  • recognize what integer overflow is and how to prevent it
  • identify issues with arithmetic operations in Java programs
  • identify issues with forming strings containing partial characters from variable-width encodings
  • identify issues with encoding noncharacter data as a string
  • identify issues with using strings to compare locale-dependent data
  • identify how to use null values in creating defendable code
  • identify how to work with classes to create defendable code
  • identify how to work defensively with constructors in Java
  • identify issues with mutability in Java classes
  • identify how to work defensively with serialization and deserialization in Java
  • identify the difference between abstract object and reference equality in Java programs
  • identify how to use conditional expressions when coding defensively
  • identify how to avoid assignments in conditional expression for defensive programming in Java
  • identify how to distinguish and use bitwise and logical operators in conditional expressions
  • use best practices in working with enhanced for poop in Java programs
  • identify how to use collections safely in Java programs
  • demonstrate how to use exceptions appropriately in Java to handle errors
  • identify how denial-of-service or DoS attacks can occur
  • identify how to manage resources safely in Java
  • identify how to correctly terminate Java programs
  • use defensive programming techniques in Java programs

Overview/Description
Defensive programming is an approach to programming that attempts to ensure that software still functions under adverse or unforeseen circumstances. In this course, you will explore the fundamentals of defensive programming in Java including how to use assertions and annotation, and how to use classes, types, methods, and program flow control securely. You will also learn how to handle exceptions correctly, how to manage resources, and how to terminate a program securely.

Target Audience
Java developers seeking an introductory guide to developing efficient, secure, Java applications that are defendable against a variety of issues

Close Chat Live